#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

static char usrdata[] = {"usr data!"};

//argc:应用程序参数个数 argv[]:具体的参数内容，字符串形式
int main(int argc,char *argv[])
{
	int fd,retvalue;

	char *filename;
	char readbuf[100],writebuf[100];

	if(argc != 3)
	{
		printf("Error Usage!\r\n");
		return -1;
	}

	filename = argv[1];

	fd = open(filename,O_RDWR);

	if (fd < 0)
	{
		printf("can't open file :%s\r\n",filename);
		return -1;
	}

	if(atoi(argv[2]) == 1)
	{ 
 		retvalue = read(fd, readbuf, 50);	/* 从驱动文件读取数据 */
 		if(retvalue < 0)
		{
 			printf("read file %s failed!\r\n", filename);
 		}
		else
		{
			/* 读取成功，打印出读取成功的数据 */
			printf("read data:%s\r\n",readbuf);
		}
 	}

	if(atoi(argv[2]) == 2)
	{
 		memcpy(writebuf, usrdata, sizeof(usrdata));
 		retvalue = write(fd, writebuf, 50);		/* 向设备驱动写数据 */
 		if(retvalue < 0)
		{
 			printf("write file %s failed!\r\n", filename);
 		}
 	}
	/* 关闭设备 */
 	retvalue = close(fd);
 	if(retvalue < 0)
	{
		printf("Can't close file %s\r\n", filename);
		return -1;
	}
	return 0;
}

